package com.tmt.jpa.jpaservice;

import java.lang.annotation.*;

/**
 * 同步更新注释。用于一对多映射的情况。
 * 只能用在标记了OneToMany注解的列表类型的字段上。
 * 且其OneToMany的cascade属性应该包含CascadeType.PERSIST，
 * 如果未包含则创建时无法同步保存列表项
 * Created by ThreeManTeam on 2017/7/18.
 */
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SyncUpdate {

	/**
	 * 是否更新集合类型的属性：
	 * 1. 删除不存在当前属性集合中的实体对象；
	 * 2. 新增属性集合中Id为null的实体对象；
	 * @return
	 */
	boolean updateCollection() default true;

	/**
	 * 是否更新集合类型的属性中的每一实体对象。
	 * @return
	 */
	boolean updateItemInCollection() default false;
}
